class HomeController < ApplicationController

  def fiscal
    Fiscal.instance
  end

  def index
    @candidatos_registrados = {:docentes => cand(:docentes), :graduados => cand(:graduados), :alumnos => cand(:alumnos)}

  end

  def cand(cla)
    $registro_de_candidatos.candidatos cla
  end

  def agregar_candidato
    registrador = RegistradorDeCandidatosFactory.crear_para params[:claustro].to_sym
    @res = registrador.registrar_a params[:candidato]
    if @res[:status] == :ok
      return render 'registrado'
    else
      return render 'registrado_fallido'
    end
  end

  def login
    @usr = params[:usr]
    @un_cuarto = fiscal.autenticar(@usr,params[:pass])
    
    if @un_cuarto.class == CuartoOscuroInvalido
      render 'prohibido' 
    else
      render 'cuarto_oscuro'
    end  
  end

  def vote
    un_cuarto = fiscal.autenticar(params[:usr],params[:pass])
    return render 'prohibido' if un_cuarto.class == CuartoOscuroInvalido
    
    un_voto = un_cuarto.votar_a(params[:candidatos] || [])
    if un_voto.class == VotoInvalido
      @voto = un_voto
      return render 'voto_invalido' 
    end
    
    fiscal.registrar_voto(params['usr'],un_voto)
    render 'index'
  end

  def resultados
    @resultados = fiscal.finalizar_eleccion
  end
end